function ppp(prototype, propName: string) {
  // console.log(arguments);
  if (!prototype.propList) {
    prototype.propList = [];
  }
  prototype.propList.push(propName);
}

function argv(proto, methodName: string, index: number) {
  if(!proto.methodArgvMap){
    proto.methodArgvMap = {};
  }
  let map;
  if(!proto.methodArgvMap[methodName]){
    proto.methodArgvMap[methodName] = [];
  }
  map = proto.methodArgvMap[methodName];
}

class User {
  @ppp
  private name: string;
  @ppp
  public age: number;
  @ppp
  group: any;

  print() {
    let self: any = this;
    console.log(self.propList);
  }

  myFun(a: string, @argv b: number) {

  }
}

const user:any = new User();
// user.print();
console.log(user.methodArgvMap);

export { User };
